/*
 * mult_uip.c
 *
 *  Created on: Mar 29, 2011
 *      Author: mtgm
 *
 *
 *      Aqui está implementado a camada de interligação entre os diferentes Serviços
 *      que poderá ser usado na camada de aplicação.
 */




/* Função responsavel em colocar as portas em que o UIP deverá monitorar.
 * TELNET - 23
 * HTTP - 80
 * */

#include <stdio.h>
#include "uip.h"

void services_init(void){
	CHAT_PORT = 5555; //inicializa o chat com uma porta default. que será alterada de acordo com a def do chat.
	telnetd_init(); //telnet faz comunicação através da porta 23
	httpd_init(); //http faz comunicação através da porta 80.
	chat_init();	//porta inicial, ela será alterada de acordo com o chat.
}


void services_appcall(void){

	struct services_state *proc;

//	proc = (struct services_state)uip_conn->appstate;

//	if (uip_connected()){//uip_connected - aloca uma nova conexão.

		//verificação de qual serviço deve ser atendido é feita através da porta utilizada por ele.
		switch(uip_conn->lport){
			case HTONS(TELNET_PORT):
				DEBUG_INFO("Atendendo servicos de TELNET");
				//função tratadora dos serviços de telnet.
				telnetd_appcall();
				break;

			case HTONS(HTTP_PORT):
				DEBUG_INFO("Atendendo servicos de HTTP");
				//função tratadora dos serviços do webServer.
				httpd_appcall();
				break;
			case HTONS(5555):
//				DEBUG_INFO("Atendendo servicos de CHAT");
				//função tratadora dos serviços do webServer.
				chat_appcall();
				break;
		}
//	}

}
